package com.tedu.API.thread;

/**
 * Thread类  线程同步
 * join()【线程之间同步】
 * 作用：允许在一个线程上等待另外一个线程执行完毕，在执行自己
 *用法：线程名.join(),用在另外一个线程
 *
 * 线程同步：执行线程先后顺序
 * 线程异步：执行线程没有顺序，各自完成各自的线程功能！
 *
 *
 * 模拟：下载图片【1%~100%下载进度】，显示图片功能【先下载，再查看】
 *      线程   download   功能：下载进度条1%-100%  100毫秒
 *      线程   show       功能：显示图片
 */
public class Thread_join {
    public static void main(String[] args) throws InterruptedException {
        Thread download = new Thread(() -> {
            for (int i = 0; i <= 100; i++) {
                System.out.println("下载"+i+"%");
                try {
                    Thread.sleep(100) ;
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("下载完毕~~");
        });
        Thread show = new Thread(() -> {
                try {
                    download.join();//下载完毕之后，再调显示的线程
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("图片下载成功显示图片");
        });
        download.start();
        show.start();

    }
}